package Day17;

import java.io.InputStreamReader;

public class Day17 {
    public static void main(String[] args) {
        //java按照字节读写单位分类
        //字符流 以char为单位读写 只适合读写文本文件/数据
        //文本转字节 字节转文本
        //换行读写

        //字符流都是高级流
        //java.io.Reader 字符输入流的超类
        //java.io.Writer 字符输出流的超类
        //参数单位和返回值单位与先前的有区别

        //转换流 意义大于操作 直接使用的场景较少
        //字符流只能连接字符流使用(char单位) 不能直接连接字节流(byte单位)
        //而节点流一般都是字节流 因此需要转换流转换读写单位(例如输出时 char->byte)

        //InputStreamReader
        //OutputStreamWriter

        //转换流使用的字符集是系统默认的字符集 因此需要按需更改
        //在new的时候写在构造器参数里

        //缓冲字符流(保证字符的读写效率)
        //内部有一个8192长的char数组

        //流式API
        //collection包中
        //Stream().map(e -> e * 3)映射 中间环节 此例子表示的是将每个数据扩大三倍
        //                        .collect(Collections.toList)终止环节 接收变化后的数据 ()内为固定写法

        //处理异常机制
        //异常
            //分类
            //Throwable 异常顶级超类
                //Error错误 系统级别 不可恢复 程序一定会停止
                //Exception意外 异常 可恢复 程序不会停止

        //处理异常机制
        //try-catch 当没有异常处理机制保护时 程序会直接将错误抛给系统 并被程序杀死 类似于闪退

        //捕获异常有相同的处理方法时 可以直接捕获异常的超类 捕获超类异常时 try中所有的子类的异常都会被捕获

        //自定义异常 针对业务需求制定
    }
}
